#!/bin/bash

# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color

# 本地数据库配置
LOCAL_DB_HOST="localhost"
LOCAL_DB_PORT="3306"
LOCAL_DB_USER="root"
LOCAL_DB_PASSWORD="lh540308"
LOCAL_DB_NAME="fastapi_auth"

# SQL文件输出目录
SQL_OUTPUT_DIR="./sql_exports"
SQL_FILE="${SQL_OUTPUT_DIR}/database_export_$(date +%Y%m%d_%H%M%S).sql"

echo -e "${BLUE}=== 数据库导出为SQL文件 ===${NC}"

# 创建输出目录
mkdir -p "$SQL_OUTPUT_DIR"

# 检查本地数据库连接
echo -e "${YELLOW}检查本地数据库连接...${NC}"
mysql -h"$LOCAL_DB_HOST" -P"$LOCAL_DB_PORT" -u"$LOCAL_DB_USER" -p"$LOCAL_DB_PASSWORD" -e "SELECT 1;" > /dev/null 2>&1
if [ $? -ne 0 ]; then
    echo -e "${RED}错误：无法连接到本地数据库${NC}"
    exit 1
fi

# 导出数据库为SQL文件
echo -e "${YELLOW}导出数据库到SQL文件...${NC}"
mysqldump -h"$LOCAL_DB_HOST" -P"$LOCAL_DB_PORT" -u"$LOCAL_DB_USER" -p"$LOCAL_DB_PASSWORD" \
    --single-transaction --routines --triggers --events \
    "$LOCAL_DB_NAME" > "$SQL_FILE"

if [ $? -eq 0 ]; then
    echo -e "${GREEN}✓ 数据库已成功导出到: $SQL_FILE${NC}"
    echo -e "${GREEN}✓ 文件大小: $(du -h "$SQL_FILE" | cut -f1)${NC}"
else
    echo -e "${RED}✗ 数据库导出失败${NC}"
    exit 1
fi

echo -e "${BLUE}=== 导出完成 ===${NC}"
echo -e "${YELLOW}使用方法：${NC}"
echo -e "1. 将SQL文件复制到生产服务器"
echo -e "2. 使用 import_from_sql.sh 脚本导入数据"